<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>文章列表</title>
    <link rel="stylesheet" href="./libs/bootstrap/css/bootstrap.min.css" />
    <link rel="stylesheet" href="css/reset.css" />
    <link rel="stylesheet" href="css/iconfont.css" />
    <link rel="stylesheet" href="css/main.css" />
    <!-- jq -->
    <script src="./libs/jquery-1.12.4.min.js"></script>
    <!-- 模板引擎 -->
    <script src="./libs/template-web.js"></script>
    <!-- 导入日期插件文件 -->
    <script src="./libs/jedate/js/jedate.js"></script>
    <link rel="stylesheet" href="./libs/jedate/css/jeDate-test.css" />
    <link rel="stylesheet" href="./libs/jedate/css/jedate.css" />
    <!-- 插入富文本编辑器文件 -->
    <script src="./libs/wangEditor/wangEditor.js"></script>
  </head>

  <body>
    <div class="container-fluid">
      <div class="common_title">文章编辑</div>
      <div class="container-fluid common_con">
        <form class="form-horizontal article_form" id="form">
          <div class="form-group">
            <label for="inputTitle" class="col-sm-2 control-label"
              >文章标题：</label
            >
            <div class="col-sm-10">
              <input
                type="text"
                name="title"
                class="form-control title"
                id="inputTitle"
                value="文章标题文字"
              />
            </div>
          </div>
          <div class="form-group">
            <label for="inputCover" class="col-sm-2 control-label"
              >文章封面：</label
            >
            <div class="col-sm-10">
              <img src="images/pic06.jpg" class="article_cover" />
              <input name="cover" type="file" id="inputCover" />
            </div>
          </div>
          <div class="form-group">
            <label for="inputCategory" class="col-sm-2 control-label"
              >文章类别：</label
            >
            <div class="col-sm-4">
              <select class="form-control category" name="categoryId">
                <option>类别一</option>
                <option>类别二</option>
                <option>类别三</option>
                <option selected>类别四</option>
                <option>类别五</option>
              </select>
            </div>
          </div>
          <div class="form-group">
            <label class="col-sm-2 control-label">发布时间：</label>
            <div class="col-sm-4">
              <!-- 日期插件 -->
              <div class="jeinpbox">
                <input
                  type="text"
                  class="jeinput"
                  id="testico"
                  name="date"
                  placeholder="YYYY-MM-DD"
                />
                <div class="icons jebtns"></div>
              </div>
            </div>
          </div>
          <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label"
              >文章内容：</label
            >
            <div class="col-sm-10">
              <div id="div1">
                <p>欢迎使用 <b>wangEditor</b> 富文本编辑器</p>
              </div>
            </div>
          </div>
          <div class="form-group">
            <div class="col-sm-offset-2 col-sm-10">
              <button type="submit" class="btn btn-success btn-edit">
                修改
              </button>
              <button type="submit" class="btn btn-default btn-draft">
                存为草稿
              </button>
            </div>
          </div>
        </form>
      </div>
    </div>
  </body>
  <script src="./libs/https.js"></script>
  <script>
    $(function () {
      // 1. 获得跳转路径拼接的参数: 文章id值
      let articleId = window.location.search.split("=")[1];
      // 2. 设置封面预览功能
      $("#inputCover").on("change", function () {
        // 3. 获得图片文件,转换路径
        let picFile = this.files[0];
        let picUrl = URL.createObjectURL(picFile);
        $(".article_cover").attr("src", picUrl);
      });

      // 4. 获得所有文章类别,加载下拉框
      $.ajax({
        type: "get",
        url: BigNew.category_list,
        success: function (backData) {
          if (backData.code == 200) {
            // 5. 利用模板字符串渲染结构
            let htmlStr = "";
            $.each(backData.data, function (index, value) {
              htmlStr += `<option value="${value.id}">${value.name}</option>
                    `;
            });
            $(".category").html(htmlStr);
          }
        },
      });

      // 6. 加载日期插件
      $(".jebtns").on("click", function () {
        jeDate("#testico", {
          trigger: false,
          format: "YYYY/MM/DD",
          theme: { bgcolor: "deepgreen", pnColor: "green" },
          zIndex: 20000,
        });
      });

      // 7. 加载富文本插件
      const E = window.wangEditor;
      const editor = new E("#div1");
      editor.create();

      // 8. 获得指定文章数据,渲染结构
      $.ajax({
        type: "get",
        url: BigNew.article_search,
        data: {
          id: articleId,
        },
        success: function (backData) {
          if (backData.code == 200) {
            // 9. 将返回的数据,渲染到指定结构
            $(".title").val(backData.data.title);
            $(".article_cover").attr("src", backData.data.cover);
            $(".category").val(backData.data.categoryId);
            $(".jeinput").val(backData.data.date);
            // 调用富文本插件方法,设置内容
            editor.txt.html(backData.data.content);
          }
        },
      });

      // 10. 封装函数: 修改文章数据
      function saveData(state) {
        // 11. 利用formData获得文章数据
        let fd = new FormData(document.querySelector("form")); // title cover date categoryId

        // 12. 手动添加其他参数
        fd.append("id", articleId);
        fd.append("state", state);
        fd.append("content", editor.txt.html());

        // 13. 发起ajax请求,修改文章数据
        $.ajax({
          type: "post",
          url: BigNew.article_edit,
          data: fd,
          contentType: false,
          processData: false,
          success: function (backData) {
            if (backData.code == 200) {
              alert(backData.msg);
              window.location = "./article_list.html";
            }
          },
        });
      }

      // 给修改/草稿按钮设置点击事件
      $(".btn-edit").on("click", function (e) {
        e.preventDefault();
        saveData("已发布");
      });
      $(".btn-draft").on("click", function (e) {
        e.preventDefault();
        saveData("草稿");
      });
    });
  </script>
</html>
